import type IEntityModel from "@/type/IEntityModel.ts";

/**
 * 权限资源的实体类型
 */
export default interface SysPermission extends IEntityModel<SysPermission> {

    /**
     * 父资源主键id，通过该字段将SysPermission数组转为树状数据
     */
    pid: string,
    /**
     * 资源名称，展示在页面上
     */
    permissionName: string,

    /**
     * 资源编码，例如：接口地址、页面的路由地址、页面元素(按钮)的唯一标识
     */
    permissionCode: string,

    /**
     * 资源类型，1-接口、2-页面、3-页面元素
     */
    permissionType: 1 | 2 | 3,

    /**
     * 前端组件地址（type为页面时生效）
     */
    component?: string,
    /**
     * 图标
     */
    icon?: string,
    /**
     * 是否可见
     */
    visible: boolean,

    /**
     * 重定向
     */
    redirect?: string,

    /**
     * 排序
     */
    sort?: number,

    /**
     * 子资源
     */
    children?: Array<SysPermission>
}